In this notebook we consider the role of religious affiliation and religiosity in the first “think/believe” task, in which participants completed a series of fill-in-the-blanks by choosing between two options: “think” and “believe.”
NAs introduced by coercionNAs introduced by coercionNAs introduced by coercion
Demographics
First, let’s just look at how people in different countries replied to the relevant questions.
Religious affiliation
thb1_demo_regp_1_TEXT: “Are you a part of any religious group? If yes, what group?”

..._demo_rlgn: “What religion do you practice, if any?”
This question was included in the bigger “packet” (not in the “Think Believe” survey itself). It was open-response, but here I’ve done my best to code the respones as “Christian,” “Buddhist,” “Other religious,” or “Not religious.”
Seems to have been omitted in Ghana and Vanuatu?
Factor `religion` contains implicit NA, consider using `forcats::fct_explicit_na`

Combining thb1_demo_regp_1_TEXT and ..._demo_rlgn
Here I’ll count someone as “Christian” if I coded their response to either thb1_demo_regp_1_TEXT or ..._demo_rlgn as “Christian” (etc.).
Factor `new_relig` contains implicit NA, consider using `forcats::fct_explicit_na`

Religiosity
thb1_demo_regp: “Are you a part of any religious group?”
Factor `thb1_demo_regp` contains implicit NA, consider using `forcats::fct_explicit_na`

thb1_demo_rely: “From 1 to 7, how religious are you? (1 = not religious at all, 7 = extremely religious)”
Seems to have been omitted in Thailand?
Factor `thb1_demo_rely` contains implicit NA, consider using `forcats::fct_explicit_na`

thb1_demo_impr: “From 1 to 7, how important to you is your religious practice? (1 = not important at all, 7 = of utmost importance)”
Seems to have been omitted in Thailand?
Factor `thb1_demo_impr` contains implicit NA, consider using `forcats::fct_explicit_na`

thb1_demo_wors: “How often do you attend places of worship?”
Factor `thb1_demo_wors` contains implicit NA, consider using `forcats::fct_explicit_na`

thb1_demo_bgod: “What best describes your level of belief in God?”
Factor `thb1_demo_bgod` contains implicit NA, consider using `forcats::fct_explicit_na`

thb1_demo_bbuh: “What best describes your level of belief in Buddha?”
Factor `thb1_demo_bbuh` contains implicit NA, consider using `forcats::fct_explicit_na`

thb1_demo_bosp: “What best describes your level of belief in another spiritual being (other than God or Buddha)?”
Factor `thb1_demo_bosp` contains implicit NA, consider using `forcats::fct_explicit_na`

thb1_demo_atsn: "What best describes your attitude towards the supernatural?
Factor `thb1_demo_atsn` contains implicit NA, consider using `forcats::fct_explicit_na`

Response options:
- “There is no such thing as supernatural forces or beings”
- “We cannot know if there are supernatural forces and beings”
- “There might be supernatural forces and beings”
- “Supernatural forces and beings exist but we cannot know what they are like”
- “There definitely are supernatural forces and beings”
thb1_demo_imsn: “From 1 to 7, how important to you is your attitude toward the supernatural? (1 = not important at all, 7 = of utmost importance)”
Factor `thb1_demo_imsn` contains implicit NA, consider using `forcats::fct_explicit_na`

Analyses
Now, let’s look at how responses to our think/believe questions might have varied depending on religion/religiosity. For now, I’ll just focus on a couple of variables that seem to have been answered in reasonable ways.
Religious affiliation

| Parameter |
β |
Std. Err. |
df |
t |
p |
|
| Intercept |
0.58 |
0.02 |
28.67 |
23.74 |
<0.001 |
*** |
| Category (religious) |
0.24 |
0.02 |
23.02 |
10.22 |
<0.001 |
*** |
| Religious affiliation (Christian vs. not religious) |
0.01 |
0.01 |
89.31 |
0.68 |
0.497 |
|
| Category (religious) × Religious affiliation (Christian vs. not religious) |
0.02 |
0.01 |
2411.19 |
2.48 |
0.013 |
* |
Religiosity
thb1_demo_rely: “From 1 to 7, how religious are you? (1 = not religious at all, 7 = extremely religious)”
r1.6 <- lmer(believe ~ super_cat * country * thb1_demo_rely_num
+ (1 + super_cat | thb1_subj) + (1 | question),
data = d1_long %>%
filter(country != "Thailand") %>%
mutate(thb1_demo_rely_num = scale(thb1_demo_rely_num)),
contrasts = list(country = "contr.sum"))
contrasts dropped from factor country due to missing levelscontrasts dropped from factor country due to missing levelsModel failed to converge with max|grad| = 0.00896918 (tol = 0.002, component 1)contrasts dropped from factor country due to missing levelscontrasts dropped from factor country due to missing levels
| Parameter |
β |
β' |
β'' |
Std. Err. |
df |
t |
p |
|
| Intercept |
0.62 |
- |
- |
0.03 |
26.80 |
23.21 |
<0.001 |
*** |
| Category (religious) |
0.20 |
0.38 |
0.38 |
0.03 |
34.10 |
6.92 |
<0.001 |
*** |
| Country (US) |
-0.03 |
-0.04 |
-0.04 |
0.01 |
234.59 |
-2.19 |
0.029 |
* |
| Country (Ghana) |
0.10 |
0.13 |
0.13 |
0.02 |
303.67 |
5.51 |
<0.001 |
*** |
| Country (China) |
-0.04 |
-0.06 |
-0.06 |
0.02 |
303.86 |
-2.48 |
0.014 |
* |
| How religious are you? |
0.00 |
-0.01 |
-0.01 |
0.01 |
287.38 |
-0.55 |
0.585 |
|
| Category (religious) × Country (US) |
0.05 |
0.09 |
0.09 |
0.02 |
252.91 |
2.90 |
0.004 |
** |
| Category (religious) × Country (Ghana) |
-0.11 |
-0.15 |
-0.15 |
0.03 |
273.83 |
-4.23 |
<0.001 |
*** |
| Category (religious) × Country (China) |
0.05 |
0.07 |
0.07 |
0.03 |
273.88 |
1.94 |
0.054 |
|
| Category (religious) × How religious are you? |
0.03 |
0.06 |
0.06 |
0.01 |
269.42 |
2.41 |
0.017 |
* |
| Country (US) × How religious are you? |
0.02 |
0.03 |
0.03 |
0.01 |
240.09 |
1.87 |
0.063 |
|
| Country (Ghana) × How religious are you? |
-0.03 |
-0.04 |
-0.04 |
0.01 |
302.12 |
-1.86 |
0.064 |
|
| Country (China) × How religious are you? |
0.00 |
0.00 |
0.00 |
0.02 |
303.01 |
0.07 |
0.941 |
|
| Category (religious) × Country (US) × How religious are you? |
-0.01 |
-0.01 |
-0.01 |
0.02 |
255.52 |
-0.48 |
0.630 |
|
| Category (religious) × Country (Ghana) × How religious are you? |
-0.02 |
-0.03 |
-0.03 |
0.02 |
273.47 |
-0.85 |
0.396 |
|
| Category (religious) × Country (China) × How religious are you? |
0.04 |
0.06 |
0.06 |
0.02 |
273.71 |
1.72 |
0.086 |
|
This analysis suggests that greater religiosity was associated with an increased distinction between religious and fact questions. (Note that this analysis omits participants from Thailand, who did not answer this question about religiosity.)


thb1_demo_impr: “From 1 to 7, how important to you is your religious practice? (1 = not important at all, 7 = of utmost importance)”
r1.7 <- lmer(believe ~ super_cat * country * thb1_demo_impr_num
+ (1 + super_cat | thb1_subj) + (1 | question),
data = d1_long %>%
filter(country != "Thailand") %>%
mutate(thb1_demo_impr_num = scale(thb1_demo_impr_num)),
contrasts = list(country = "contr.sum"))
contrasts dropped from factor country due to missing levelscontrasts dropped from factor country due to missing levelscontrasts dropped from factor country due to missing levelscontrasts dropped from factor country due to missing levels
| Parameter |
β |
β' |
β'' |
Std. Err. |
df |
t |
p |
|
| Intercept |
0.61 |
- |
- |
0.03 |
26.61 |
22.95 |
<0.001 |
*** |
| Category (religious) |
0.19 |
0.37 |
0.37 |
0.03 |
33.62 |
6.62 |
<0.001 |
*** |
| Country (US) |
-0.02 |
-0.04 |
-0.04 |
0.01 |
229.00 |
-1.88 |
0.061 |
|
| Country (Ghana) |
0.09 |
0.13 |
0.13 |
0.02 |
300.94 |
5.63 |
<0.001 |
*** |
| Country (China) |
-0.04 |
-0.06 |
-0.06 |
0.02 |
301.85 |
-2.41 |
0.017 |
* |
| How important is your religious practice? |
0.00 |
0.00 |
0.00 |
0.01 |
285.11 |
-0.14 |
0.892 |
|
| Category (religious) × Country (US) |
0.06 |
0.11 |
0.11 |
0.02 |
247.36 |
3.47 |
<0.001 |
*** |
| Category (religious) × Country (Ghana) |
-0.11 |
-0.15 |
-0.15 |
0.02 |
268.91 |
-4.33 |
<0.001 |
*** |
| Category (religious) × Country (China) |
0.03 |
0.04 |
0.04 |
0.03 |
269.16 |
1.10 |
0.274 |
|
| Category (religious) × How important is your religious practice? |
0.03 |
0.05 |
0.05 |
0.01 |
264.73 |
2.20 |
0.029 |
* |
| Country (US) × How important is your religious practice? |
0.02 |
0.03 |
0.03 |
0.01 |
235.72 |
1.78 |
0.077 |
|
| Country (Ghana) × How important is your religious practice? |
-0.03 |
-0.04 |
-0.04 |
0.02 |
300.34 |
-1.81 |
0.071 |
|
| Country (China) × How important is your religious practice? |
-0.01 |
-0.01 |
-0.01 |
0.02 |
300.94 |
-0.34 |
0.735 |
|
| Category (religious) × Country (US) × How important is your religious practice? |
0.02 |
0.02 |
0.02 |
0.02 |
250.45 |
0.81 |
0.422 |
|
| Category (religious) × Country (Ghana) × How important is your religious practice? |
-0.01 |
-0.01 |
-0.01 |
0.02 |
268.83 |
-0.35 |
0.726 |
|
| Category (religious) × Country (China) × How important is your religious practice? |
0.01 |
0.01 |
0.01 |
0.02 |
268.98 |
0.23 |
0.818 |
|
This analysis suggests that more importance placed on religious practice was associated with an increased distinction between religious and fact questions. (Note that this analysis omits participants from Thailand, who did not answer this question about religiosity.)


thb1_demowors: “How often do you attend places of worship?”
r1.8 <- lmer(believe ~ super_cat * country * thb1_demo_wors_num
+ (1 + super_cat | thb1_subj) + (1 | question),
data = d1_long %>%
mutate(thb1_demo_wors_num = scale(thb1_demo_wors_num)))
| Parameter |
β |
β' |
β'' |
Std. Err. |
df |
t |
p |
|
| Intercept |
0.59 |
- |
- |
0.03 |
29.54 |
21.89 |
<0.001 |
*** |
| Category (religious) |
0.22 |
0.42 |
0.42 |
0.03 |
38.24 |
7.45 |
<0.001 |
*** |
| Country (Gh.) |
0.11 |
0.14 |
0.14 |
0.02 |
352.76 |
5.78 |
<0.001 |
*** |
| Country (Th.) |
-0.01 |
-0.02 |
-0.02 |
0.01 |
349.73 |
-1.02 |
0.306 |
|
| Country (Ch.) |
-0.08 |
-0.09 |
-0.09 |
0.03 |
354.94 |
-2.46 |
0.014 |
* |
| Country (Vt.) |
-0.01 |
-0.01 |
-0.01 |
0.02 |
353.01 |
-0.44 |
0.657 |
|
| How often do you attend places of worship? |
-0.02 |
-0.05 |
-0.05 |
0.01 |
344.93 |
-2.43 |
0.016 |
* |
| Category (religious) × Country (Gh.) |
-0.15 |
-0.19 |
-0.19 |
0.03 |
333.44 |
-5.48 |
<0.001 |
*** |
| Category (religious) × Country (Th.) |
0.05 |
0.07 |
0.07 |
0.02 |
332.37 |
2.62 |
0.009 |
** |
| Category (religious) × Country (Ch.) |
0.04 |
0.05 |
0.05 |
0.04 |
334.21 |
0.99 |
0.322 |
|
| Category (religious) × Country (Vt.) |
-0.01 |
-0.01 |
-0.01 |
0.03 |
333.53 |
-0.34 |
0.734 |
|
| Category (religious) × How often do you attend places of worship? |
0.03 |
0.05 |
0.05 |
0.01 |
330.78 |
2.03 |
0.043 |
* |
| Country (Gh.) × How often do you attend places of worship? |
-0.01 |
-0.01 |
-0.01 |
0.02 |
353.40 |
-0.30 |
0.764 |
|
| Country (Th.) × How often do you attend places of worship? |
-0.02 |
-0.03 |
-0.03 |
0.02 |
353.10 |
-1.33 |
0.186 |
|
| Country (Ch.) × How often do you attend places of worship? |
-0.02 |
-0.03 |
-0.03 |
0.02 |
354.26 |
-0.95 |
0.343 |
|
| Country (Vt.) × How often do you attend places of worship? |
0.03 |
0.03 |
0.03 |
0.02 |
353.86 |
1.37 |
0.173 |
|
| Category (religious) × Country (Gh.) × How often do you attend places of worship? |
0.01 |
0.02 |
0.02 |
0.03 |
333.70 |
0.47 |
0.636 |
|
| Category (religious) × Country (Th.) × How often do you attend places of worship? |
-0.04 |
-0.05 |
-0.05 |
0.02 |
333.59 |
-1.57 |
0.118 |
|
| Category (religious) × Country (Ch.) × How often do you attend places of worship? |
0.03 |
0.04 |
0.04 |
0.03 |
333.99 |
0.83 |
0.405 |
|
| Category (religious) × Country (Vt.) × How often do you attend places of worship? |
-0.03 |
-0.04 |
-0.04 |
0.03 |
333.86 |
-0.98 |
0.327 |
|
This analysis suggests that frequency of attendence was associated with an increased distinction between religious and fact questions.


LS0tCnRpdGxlOiAiVGhpbmsgQmVsaWV2ZSAxIChmb3JjZWQgY2hvaWNlKTogUmVsaWdpb3VzIGFmZmlsaWF0aW9uIGFuZCByZWxpZ2lvc2l0eSIKb3V0cHV0OiAKICBodG1sX25vdGVib29rOgogICAgdG9jOiB0cnVlCiAgICB0b2NfZmxvYXQ6IHRydWUKLS0tCgpgYGB7ciBzZXR1cH0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBGLCBtZXNzYWdlID0gRikKYGBgCgpJbiB0aGlzIG5vdGVib29rIHdlIGNvbnNpZGVyIHRoZSByb2xlIG9mIHJlbGlnaW91cyBhZmZpbGlhdGlvbiBhbmQgcmVsaWdpb3NpdHkgaW4gdGhlIGZpcnN0ICJ0aGluay9iZWxpZXZlIiB0YXNrLCBpbiB3aGljaCBwYXJ0aWNpcGFudHMgY29tcGxldGVkIGEgc2VyaWVzIG9mIGZpbGwtaW4tdGhlLWJsYW5rcyBieSBjaG9vc2luZyBiZXR3ZWVuIHR3byBvcHRpb25zOiAidGhpbmsiIGFuZCAiYmVsaWV2ZS4iCgoKYGBge3J9CnNvdXJjZSgiLi9zY3JpcHRzL2RlcGVuZGVuY2llcy5SIikKc291cmNlKCIuL3NjcmlwdHMvY3VzdG9tX2Z1bnMuUiIpCnNvdXJjZSgiLi9zY3JpcHRzL3Zhcl9yZWNvZGVfY29udHJhc3QuUiIpCnNvdXJjZSgiLi9zY3JpcHRzL2RhdGFfcHJlcC5SIikKYGBgCgoKIyBEZW1vZ3JhcGhpY3MKCkZpcnN0LCBsZXQncyBqdXN0IGxvb2sgYXQgaG93IHBlb3BsZSBpbiBkaWZmZXJlbnQgY291bnRyaWVzIHJlcGxpZWQgdG8gdGhlIHJlbGV2YW50IHF1ZXN0aW9ucy4gCgojIyBSZWxpZ2lvdXMgYWZmaWxpYXRpb24KCiMjIyBgdGhiMV9kZW1vX3JlZ3BfMV9URVhUYDogIkFyZSB5b3UgYSBwYXJ0IG9mIGFueSByZWxpZ2lvdXMgZ3JvdXA/IElmIHllcywgd2hhdCBncm91cD8iCgpgYGB7ciwgZmlnLndpZHRoID0gNCwgZmlnLmFzcCA9IDAuNH0KZGVtb19wbG90X2Z1bihkMSwgc2FtcGxlX3NpemVfZDEsICJ0aGIxX3JlbGlnaW9uIikgKwogIGxhYnMoeCA9ICJBcmUgeW91IGEgcGFydCBvZiBhbnkgcmVsaWdpb3VzIGdyb3VwPyBJZiB5ZXMsIHdoYXQgZ3JvdXA/IiwgCiAgICAgICB5ID0gInByb3BvcnRpb24iKSArCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgaGp1c3QgPSAxLCB2anVzdCA9IDEpKQpgYGAKCiMjIyBgLi4uX2RlbW9fcmxnbmA6ICJXaGF0IHJlbGlnaW9uIGRvIHlvdSBwcmFjdGljZSwgaWYgYW55PyIKClRoaXMgcXVlc3Rpb24gd2FzIGluY2x1ZGVkIGluIHRoZSBiaWdnZXIgInBhY2tldCIgKG5vdCBpbiB0aGUgIlRoaW5rIEJlbGlldmUiIHN1cnZleSBpdHNlbGYpLiBJdCB3YXMgb3Blbi1yZXNwb25zZSwgYnV0IGhlcmUgSSd2ZSBkb25lIG15IGJlc3QgdG8gY29kZSB0aGUgcmVzcG9uZXMgYXMgIkNocmlzdGlhbiwiICJCdWRkaGlzdCwiICJPdGhlciByZWxpZ2lvdXMsIiBvciAiTm90IHJlbGlnaW91cy4iCgpTZWVtcyB0byBoYXZlIGJlZW4gb21pdHRlZCBpbiBHaGFuYSBhbmQgVmFudWF0dT8KCmBgYHtyLCBmaWcud2lkdGggPSA0LCBmaWcuYXNwID0gMC40fQpkZW1vX3Bsb3RfZnVuKGQxLCBzYW1wbGVfc2l6ZV9kMSwgInJlbGlnaW9uIikgKwogIGxhYnMoeCA9ICJXaGF0IHJlbGlnaW9uIGRvIHlvdSBwcmFjdGljZSwgaWYgYW55PyIsIAogICAgICAgeSA9ICJwcm9wb3J0aW9uIikgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSkKYGBgCgojIyMgQ29tYmluaW5nIGB0aGIxX2RlbW9fcmVncF8xX1RFWFRgIGFuZCBgLi4uX2RlbW9fcmxnbmAKCkhlcmUgSSdsbCBjb3VudCBzb21lb25lIGFzICJDaHJpc3RpYW4iIGlmIEkgY29kZWQgdGhlaXIgcmVzcG9uc2UgdG8gKmVpdGhlciogYHRoYjFfZGVtb19yZWdwXzFfVEVYVGAgb3IgYC4uLl9kZW1vX3JsZ25gIGFzICJDaHJpc3RpYW4iIChldGMuKS4KCmBgYHtyLCBmaWcud2lkdGggPSA0LCBmaWcuYXNwID0gMC40fQpkZW1vX3Bsb3RfZnVuKGQxICU+JSAKICAgICAgICAgICAgICAgIG11dGF0ZShuZXdfcmVsaWcgPSBjYXNlX3doZW4oCiAgICAgICAgICAgICAgICAgIHRoYjFfcmVsaWdpb24gPT0gIkNocmlzdGlhbiIgfCAKICAgICAgICAgICAgICAgICAgICByZWxpZ2lvbiA9PSAiQ2hyaXN0aWFuIiB+ICJDaHJpc3RpYW4iLAogICAgICAgICAgICAgICAgICB0aGIxX3JlbGlnaW9uID09ICJCdWRkaGlzdCIgfCAKICAgICAgICAgICAgICAgICAgICByZWxpZ2lvbiA9PSAiQnVkZGhpc3QiIH4gIkJ1ZGRoaXN0IiwKICAgICAgICAgICAgICAgICAgdGhiMV9yZWxpZ2lvbiA9PSAiT3RoZXIiIHwgCiAgICAgICAgICAgICAgICAgICAgcmVsaWdpb24gPT0gIk90aGVyIHJlbGlnaW91cyIgfiAiT3RoZXIgcmVsaWdpb3VzIiwKICAgICAgICAgICAgICAgICAgcmVsaWdpb24gPT0gIk5vdCByZWxpZ2lvdXMiIH4gIk5vdCByZWxpZ2lvdXMiLAogICAgICAgICAgICAgICAgICBUUlVFIH4gTkFfY2hhcmFjdGVyXykpICU+JSAKICAgICAgICAgICAgICAgIG11dGF0ZShuZXdfcmVsaWcgPSBmYWN0b3IobmV3X3JlbGlnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gYygiQnVkZGhpc3QiLCAiQ2hyaXN0aWFuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIgcmVsaWdpb3VzIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vdCByZWxpZ2lvdXMiKSkpLCAKICAgICAgICAgICAgICBzYW1wbGVfc2l6ZV9kMSwgIm5ld19yZWxpZyIpICsKICBsYWJzKHggPSAiSW5mZXJyZWQgcmVsaWdpb24iLCAKICAgICAgIHkgPSAicHJvcG9ydGlvbiIpICsKICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDEsIHZqdXN0ID0gMSkpCmBgYAoKCiMjIFJlbGlnaW9zaXR5CgojIyMgYHRoYjFfZGVtb19yZWdwYDogIkFyZSB5b3UgYSBwYXJ0IG9mIGFueSByZWxpZ2lvdXMgZ3JvdXA/IgoKYGBge3IsIGZpZy53aWR0aCA9IDQsIGZpZy5hc3AgPSAwLjR9CmRlbW9fcGxvdF9mdW4oZDEsIHNhbXBsZV9zaXplX2QxLCAidGhiMV9kZW1vX3JlZ3AiKSArCiAgbGFicyh4ID0gIkFyZSB5b3UgYSBwYXJ0IG9mIGFueSByZWxpZ2lvdXMgZ3JvdXA/IiwgCiAgICAgICB5ID0gInByb3BvcnRpb24iKQpgYGAKCiMjIyBgdGhiMV9kZW1vX3JlbHlgOiAiRnJvbSAxIHRvIDcsIGhvdyByZWxpZ2lvdXMgYXJlIHlvdT8gKDEgPSBub3QgcmVsaWdpb3VzIGF0IGFsbCwgNyA9CmV4dHJlbWVseSByZWxpZ2lvdXMpIgoKU2VlbXMgdG8gaGF2ZSBiZWVuIG9taXR0ZWQgaW4gVGhhaWxhbmQ/CgpgYGB7ciwgZmlnLndpZHRoID0gNCwgZmlnLmFzcCA9IDAuNH0KZGVtb19wbG90X2Z1bihkMSwgc2FtcGxlX3NpemVfZDEsICJ0aGIxX2RlbW9fcmVseSIpICsKICBsYWJzKHggPSAiRnJvbSAxIHRvIDcsIGhvdyByZWxpZ2lvdXMgYXJlIHlvdT8iLCAKICAgICAgIHkgPSAicHJvcG9ydGlvbiIpCmBgYAoKIyMjIGB0aGIxX2RlbW9faW1wcmA6ICJGcm9tIDEgdG8gNywgaG93IGltcG9ydGFudCB0byB5b3UgaXMgeW91ciByZWxpZ2lvdXMgcHJhY3RpY2U/ICAoMSA9IG5vdCBpbXBvcnRhbnQgYXQgYWxsLCA3ID0gb2YgdXRtb3N0IGltcG9ydGFuY2UpIgoKU2VlbXMgdG8gaGF2ZSBiZWVuIG9taXR0ZWQgaW4gVGhhaWxhbmQ/CgpgYGB7ciwgZmlnLndpZHRoID0gNCwgZmlnLmFzcCA9IDAuNH0KZGVtb19wbG90X2Z1bihkMSwgc2FtcGxlX3NpemVfZDEsICJ0aGIxX2RlbW9faW1wciIpICsKICBsYWJzKHggPSAiRnJvbSAxIHRvIDcsIGhvdyBpbXBvcnRhbnQgdG8geW91IGlzIHlvdXIgcmVsaWdpb3VzIHByYWN0aWNlPyIsIAogICAgICAgeSA9ICJwcm9wb3J0aW9uIikKYGBgCgojIyMgYHRoYjFfZGVtb193b3JzYDogIkhvdyBvZnRlbiBkbyB5b3UgYXR0ZW5kIHBsYWNlcyBvZiB3b3JzaGlwPyIKCmBgYHtyLCBmaWcud2lkdGggPSA0LCBmaWcuYXNwID0gMC40fQpkZW1vX3Bsb3RfZnVuKGQxLCBzYW1wbGVfc2l6ZV9kMSwgInRoYjFfZGVtb193b3JzIikgKwogIGxhYnMoeCA9ICJIb3cgb2Z0ZW4gZG8geW91IGF0dGVuZCBwbGFjZXMgb2Ygd29yc2hpcD8iLCAKICAgICAgIHkgPSAicHJvcG9ydGlvbiIpICsKICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDEsIHZqdXN0ID0gMSkpCmBgYAoKIyMjIGB0aGIxX2RlbW9fYmdvZGA6ICJXaGF0IGJlc3QgZGVzY3JpYmVzIHlvdXIgbGV2ZWwgb2YgYmVsaWVmIGluIEdvZD8iCgpgYGB7ciwgZmlnLndpZHRoID0gNCwgZmlnLmFzcCA9IDAuNH0KZGVtb19wbG90X2Z1bihkMSwgc2FtcGxlX3NpemVfZDEsICJ0aGIxX2RlbW9fYmdvZCIpICsKICBsYWJzKHggPSAiV2hhdCBiZXN0IGRlc2NyaWJlcyB5b3VyIGxldmVsIG9mIGJlbGllZiBpbiBHb2Q/IiwgCiAgICAgICB5ID0gInByb3BvcnRpb24iKSArCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgaGp1c3QgPSAxLCB2anVzdCA9IDEpKQpgYGAKCiMjIyBgdGhiMV9kZW1vX2JidWhgOiAiV2hhdCBiZXN0IGRlc2NyaWJlcyB5b3VyIGxldmVsIG9mIGJlbGllZiBpbiBCdWRkaGE/IgoKYGBge3IsIGZpZy53aWR0aCA9IDQsIGZpZy5hc3AgPSAwLjR9CmRlbW9fcGxvdF9mdW4oZDEsIHNhbXBsZV9zaXplX2QxLCAidGhiMV9kZW1vX2JidWgiKSArCiAgbGFicyh4ID0gIldoYXQgYmVzdCBkZXNjcmliZXMgeW91ciBsZXZlbCBvZiBiZWxpZWYgaW4gQnVkZGhhPyIsIAogICAgICAgeSA9ICJwcm9wb3J0aW9uIikgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSkKYGBgCgojIyMgYHRoYjFfZGVtb19ib3NwYDogIldoYXQgYmVzdCBkZXNjcmliZXMgeW91ciBsZXZlbCBvZiBiZWxpZWYgaW4gYW5vdGhlciBzcGlyaXR1YWwgYmVpbmcgKG90aGVyIHRoYW4gR29kIG9yIEJ1ZGRoYSk/IgoKYGBge3IsIGZpZy53aWR0aCA9IDQsIGZpZy5hc3AgPSAwLjR9CmRlbW9fcGxvdF9mdW4oZDEsIHNhbXBsZV9zaXplX2QxLCAidGhiMV9kZW1vX2Jvc3AiKSArCiAgbGFicyh4ID0gIldoYXQgYmVzdCBkZXNjcmliZXMgeW91ciBsZXZlbCBvZiBiZWxpZWYgaW4gYW5vdGhlciBzcGlyaXR1YWwgYmVpbmcgKG90aGVyIHRoYW4gR29kIG9yIEJ1ZGRoYSk/IiwgCiAgICAgICB5ID0gInByb3BvcnRpb24iKSArCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgaGp1c3QgPSAxLCB2anVzdCA9IDEpKQpgYGAKCiMjIyBgdGhiMV9kZW1vX2F0c25gOiAiV2hhdCBiZXN0IGRlc2NyaWJlcyB5b3VyIGF0dGl0dWRlIHRvd2FyZHMgdGhlIHN1cGVybmF0dXJhbD8KCmBgYHtyLCBmaWcud2lkdGggPSA0LCBmaWcuYXNwID0gMC40fQpkZW1vX3Bsb3RfZnVuKGQxLCBzYW1wbGVfc2l6ZV9kMSwgInRoYjFfZGVtb19hdHNuIikgKwogIGxhYnMoeCA9ICJXaGF0IGJlc3QgZGVzY3JpYmVzIHlvdXIgYXR0aXR1ZGUgdG93YXJkcyB0aGUgc3VwZXJuYXR1cmFsPyIsIAogICAgICAgeSA9ICJwcm9wb3J0aW9uIikgKwogIHNjYWxlX3hfZGlzY3JldGUobGFiZWxzID0gMTo1KQpgYGAKClJlc3BvbnNlIG9wdGlvbnM6CgoxLiAiVGhlcmUgaXMgbm8gc3VjaCB0aGluZyBhcyBzdXBlcm5hdHVyYWwgZm9yY2VzIG9yIGJlaW5ncyIKMi4gIldlIGNhbm5vdCBrbm93IGlmIHRoZXJlIGFyZSBzdXBlcm5hdHVyYWwgZm9yY2VzIGFuZCBiZWluZ3MiCjMuICJUaGVyZSBtaWdodCBiZSBzdXBlcm5hdHVyYWwgZm9yY2VzIGFuZCBiZWluZ3MiCjQuICJTdXBlcm5hdHVyYWwgZm9yY2VzIGFuZCBiZWluZ3MgZXhpc3QgYnV0IHdlIGNhbm5vdCBrbm93IHdoYXQgdGhleSBhcmUgbGlrZSIKNS4gIlRoZXJlIGRlZmluaXRlbHkgYXJlIHN1cGVybmF0dXJhbCBmb3JjZXMgYW5kIGJlaW5ncyIKCiMjIyBgdGhiMV9kZW1vX2ltc25gOiAiRnJvbSAxIHRvIDcsIGhvdyBpbXBvcnRhbnQgdG8geW91IGlzIHlvdXIgYXR0aXR1ZGUgdG93YXJkIHRoZSBzdXBlcm5hdHVyYWw/ICgxID0gbm90IGltcG9ydGFudCBhdCBhbGwsIDcgPSBvZiB1dG1vc3QgaW1wb3J0YW5jZSkiCgpgYGB7ciwgZmlnLndpZHRoID0gNCwgZmlnLmFzcCA9IDAuNH0KZGVtb19wbG90X2Z1bihkMSwgc2FtcGxlX3NpemVfZDEsICJ0aGIxX2RlbW9faW1zbiIpICsKICBsYWJzKHggPSAiRnJvbSAxIHRvIDcsIGhvdyBpbXBvcnRhbnQgdG8geW91IGlzIHlvdXIgYXR0aXR1ZGUgdG93YXJkIHRoZSBzdXBlcm5hdHVyYWw/IiwgCiAgICAgICB5ID0gInByb3BvcnRpb24iKQpgYGAKCgojIEFuYWx5c2VzCgpOb3csIGxldCdzIGxvb2sgYXQgaG93IHJlc3BvbnNlcyB0byBvdXIgdGhpbmsvYmVsaWV2ZSBxdWVzdGlvbnMgbWlnaHQgaGF2ZSB2YXJpZWQgZGVwZW5kaW5nIG9uIHJlbGlnaW9uL3JlbGlnaW9zaXR5LiBGb3Igbm93LCBJJ2xsIGp1c3QgZm9jdXMgb24gYSBjb3VwbGUgb2YgdmFyaWFibGVzIHRoYXQgc2VlbSB0byBoYXZlIGJlZW4gYW5zd2VyZWQgaW4gcmVhc29uYWJsZSB3YXlzLgoKIyMgUmVsaWdpb3VzIGFmZmlsaWF0aW9uCgpgYGB7cn0KZDFfdGVtcCA8LSBkMV9sb25nICU+JQogICMgZmlsdGVyKGNvdW50cnkgPT0gIlVTIikgJT4lCiAgbXV0YXRlKHJlbGlnX2NhdCA9IGNhc2Vfd2hlbigKICAgIHRoYjFfcmVsaWdpb24gPT0gIkNocmlzdGlhbiIgfCByZWxpZ2lvbiA9PSAiQ2hyaXN0aWFuIiB+ICJDaHJpc3RpYW4iLAogICAgZ3JlcGwoIk90aGVyIiwgdGhiMV9yZWxpZ2lvbikgfCAKICAgICAgZ3JlcGwoIk90aGVyIiwgcmVsaWdpb24pIHwKICAgICAgZ3JlcGwoIkJ1ZGRoIiwgdGhiMV9yZWxpZ2lvbikgfCAKICAgICAgZ3JlcGwoIkJ1ZGRoIiwgcmVsaWdpb24pIH4gIkJ1ZGRoaXN0L090aGVyIiwKICAgIHRoYjFfcmVsaWdpb24gPT0gIk5vdCByZWxpZ2lvdXMiIHwgaXMubmEodGhiMV9yZWxpZ2lvbikgfAogICAgICBpcy5uYShyZWxpZ2lvbikgfiAiTm90IHJlbGlnaW91cyIsCiAgICBUUlVFIH4gTkFfY2hhcmFjdGVyXykpICU+JQogIG11dGF0ZShyZWxpZ19jYXQgPSBmYWN0b3IocmVsaWdfY2F0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gYygiQ2hyaXN0aWFuIiwgIk5vdCByZWxpZ2lvdXMiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkJ1ZGRoaXN0L090aGVyIikpKQoKc2FtcGxlX3NpemVfZDFfdGVtcCA8LSBkMV90ZW1wICU+JQogIGRpc3RpbmN0KGNvdW50cnksIHRoYjFfc3ViaiwgcmVsaWdfY2F0KSAlPiUKICBjb3VudChjb3VudHJ5LCByZWxpZ19jYXQpICU+JQogIGFycmFuZ2UoY291bnRyeSwgcmVsaWdfY2F0KSAlPiUKICBtdXRhdGUobGFiID0gcGFzdGUwKGNvdW50cnksICI6ICIsIHJlbGlnX2NhdCwgIiAobj0iLCBuLCAiKSIpLAogICAgICAgICBvcmRlciA9IDE6bnJvdyguKSwKICAgICAgICAgbGFiID0gcmVvcmRlcihsYWIsIG9yZGVyKSkKYGBgCgpgYGB7ciwgZmlnLndpZHRoID0gMywgZmlnLmFzcCA9IDEuMn0KZDFfdGVtcCAlPiUgCiAgc2VsZWN0KC1vcmRlcikgJT4lCiAgbGVmdF9qb2luKHNhbXBsZV9zaXplX2QxX3RlbXApICU+JQogIGdncGxvdChhZXMoeCA9IHN1cGVyX2NhdCwgCiAgICAgICAgICAgICAjIHB1dCBOQXMgb24gdG9wIG9mIGJhcgogICAgICAgICAgICAgZmlsbCA9IGZhY3RvcihyZXNwb25zZV9jYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMoTkEsICJ0aGluayIsICJiZWxpZXZlIiksIAogICAgICAgICAgICAgICAgICAgICAgICAgICBleGNsdWRlID0gTlVMTCkpKSArCiAgZmFjZXRfd3JhcCguIH4gbGFiLCBuY29sID0gMykgKyAjLCBzY2FsZXMgPSAiZnJlZSIsIHNwYWNlID0gImZyZWUiKSArCiAgZ2VvbV9iYXIocG9zaXRpb24gPSAiZmlsbCIsIGFscGhhID0gMC43LCBjb2xvciA9ICJibGFjayIsIHNpemUgPSAwLjEpICsKICAjIGdlb21faGxpbmUoeWludGVyY2VwdCA9IDAuNSwgbHR5ID0gMikgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIGhqdXN0ID0gMSwgdmp1c3QgPSAxKSwKICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAidG9wIikgKwogIGxhYnMoeCA9ICJjYXRlZ29yeSIsIHkgPSAicHJvcG9ydGlvbiIsIGZpbGwgPSAicmVzcG9uc2UiKQpgYGAKCmBgYHtyfQpyMS45X3VzIDwtIGxtZXIoYmVsaWV2ZSB+IHN1cGVyX2NhdCAqIHJlbGlnX2NhdAogICAgICAgICAgICAgICAgIyArICgxICsgc3VwZXJfY2F0IHwgdGhiMV9zdWJqKSArICgxIHwgcXVlc3Rpb24pLCAjIGZhaWxlZCB0byBjb252ZXJnZSAKICAgICAgICAgICAgICAgICMgKyAoMSArIHN1cGVyX2NhdCB8fCB0aGIxX3N1YmopICsgKDEgfCBxdWVzdGlvbiksICMgZmFpbGVkIHRvIGNvbnZlcmdlIAogICAgICAgICAgICAgICAgKyAoMSB8IHRoYjFfc3ViaikgKyAoMSB8IHF1ZXN0aW9uKSwKICAgICAgICAgICAgICAgIGRhdGEgPSBkMV90ZW1wICU+JQogICAgICAgICAgICAgICAgICBmaWx0ZXIoY291bnRyeSA9PSAiVVMiLCAKICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGlnX2NhdCAlaW4lIGMoIkNocmlzdGlhbiIsICJOb3QgcmVsaWdpb3VzIikpLAogICAgICAgICAgICAgICAgY29udHJhc3RzID0gbGlzdChyZWxpZ19jYXQgPSAiY29udHIuc3VtIikpCmBgYAoKYGBge3J9CnJlZ3RhYl9mdW4ocjEuOV91cywgCiAgICAgICAgICAgcHJlZGljdG9yX3ZhcjEgPSAicmVsaWdfY2F0MSIsIAogICAgICAgICAgIHByZWRpY3Rvcl9uYW1lMSA9ICJSZWxpZ2lvdXMgYWZmaWxpYXRpb24gKENocmlzdGlhbiB2cy4gbm90IHJlbGlnaW91cykiKSAlPiUKICByZWd0YWJfc3R5bGVfZnVuKHJvd19lbXBoID0gNCkKYGBgCgojIyBSZWxpZ2lvc2l0eQoKIyMjIGB0aGIxX2RlbW9fcmVseWA6IOKAnEZyb20gMSB0byA3LCBob3cgcmVsaWdpb3VzIGFyZSB5b3U/ICgxID0gbm90IHJlbGlnaW91cyBhdCBhbGwsIDcgPSBleHRyZW1lbHkgcmVsaWdpb3VzKeKAnQoKYGBge3IsIGVjaG8gPSBUfQpyMS42IDwtIGxtZXIoYmVsaWV2ZSB+IHN1cGVyX2NhdCAqIGNvdW50cnkgKiB0aGIxX2RlbW9fcmVseV9udW0KICAgICAgICAgICAgICsgKDEgKyBzdXBlcl9jYXQgfCB0aGIxX3N1YmopICsgKDEgfCBxdWVzdGlvbiksCiAgICAgICAgICAgICBkYXRhID0gZDFfbG9uZyAlPiUgCiAgICAgICAgICAgICAgIGZpbHRlcihjb3VudHJ5ICE9ICJUaGFpbGFuZCIpICU+JQogICAgICAgICAgICAgICBtdXRhdGUodGhiMV9kZW1vX3JlbHlfbnVtID0gc2NhbGUodGhiMV9kZW1vX3JlbHlfbnVtKSksCiAgICAgICAgICAgICBjb250cmFzdHMgPSBsaXN0KGNvdW50cnkgPSAiY29udHIuc3VtIikpCmBgYAoKYGBge3J9CnJlZ3RhYl9mdW4ocjEuNiwgc3RkX2JldGEgPSBULCAKICAgICAgICAgICBjb3VudHJ5X3ZhcjEgPSAiY291bnRyeTEiLCBjb3VudHJ5X25hbWUxID0gIkNvdW50cnkgKFVTKSIsCiAgICAgICAgICAgY291bnRyeV92YXIyID0gImNvdW50cnkyIiwgY291bnRyeV9uYW1lMiA9ICJDb3VudHJ5IChHaGFuYSkiLAogICAgICAgICAgIGNvdW50cnlfdmFyMyA9ICJjb3VudHJ5MyIsIGNvdW50cnlfbmFtZTMgPSAiQ291bnRyeSAoQ2hpbmEpIiwKICAgICAgICAgICBwcmVkaWN0b3JfdmFyMSA9ICJ0aGIxX2RlbW9fcmVseV9udW0iLCAKICAgICAgICAgICBwcmVkaWN0b3JfbmFtZTEgPSAiSG93IHJlbGlnaW91cyBhcmUgeW91PyIpICU+JSAKICByZWd0YWJfc3R5bGVfZnVuKHJvd19lbXBoID0gYygxMCwgMTQ6MTYpKQpgYGAKClRoaXMgYW5hbHlzaXMgc3VnZ2VzdHMgdGhhdCBncmVhdGVyIHJlbGlnaW9zaXR5IHdhcyBhc3NvY2lhdGVkIHdpdGggYW4gaW5jcmVhc2VkIGRpc3RpbmN0aW9uIGJldHdlZW4gcmVsaWdpb3VzIGFuZCBmYWN0IHF1ZXN0aW9ucy4gKE5vdGUgdGhhdCB0aGlzIGFuYWx5c2lzIG9taXRzIHBhcnRpY2lwYW50cyBmcm9tIFRoYWlsYW5kLCB3aG8gZGlkIG5vdCBhbnN3ZXIgdGhpcyBxdWVzdGlvbiBhYm91dCByZWxpZ2lvc2l0eS4pCgpgYGB7cn0KZDFfbG9uZyAlPiUgCiAgZmlsdGVyKGNvdW50cnkgIT0gIlRoYWlsYW5kIikgJT4lCiAgZ3JvdXBfYnkoY291bnRyeSwgdGhiMV9zdWJqLCB0aGIxX2RlbW9fcmVseV9udW0sIHN1cGVyX2NhdCkgJT4lCiAgc3VtbWFyaXNlKGJlbGlldmVfcHJvcCA9IG1lYW4oYmVsaWV2ZSwgbmEucm0gPSBUKSkgJT4lCiAgdW5ncm91cCgpICU+JQogIGdncGxvdChhZXMoeCA9IHRoYjFfZGVtb19yZWx5X251bSwgeSA9IGJlbGlldmVfcHJvcCwgY29sb3IgPSBzdXBlcl9jYXQpKSArCiAgZmFjZXRfZ3JpZCguIH4gY291bnRyeSkgKwogIGdlb21faml0dGVyKGFscGhhID0gMC4yLCB3aWR0aCA9IDAuMSwgaGVpZ2h0ID0gMC4wMikgKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpICsKICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gMDo2LCBsYWJlbHMgPSBsZXZlbHMoZDEkdGhiMV9kZW1vX3JlbHkpKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInRvcCIpICsKICBsYWJzKHggPSAiSG93IHJlbGlnaW91cyBhcmUgeW91PyIsIHkgPSAiUHJvcG9ydGlvbiAnYmVsaWV2ZScgcmVzcG9uc2VzIiwKICAgICAgIGNvbG9yID0gIkNhdGVnb3J5IikKYGBgCgpgYGB7cn0KZDFfbG9uZyAlPiUgCiAgZmlsdGVyKGNvdW50cnkgIT0gIlRoYWlsYW5kIikgJT4lCiAgZ3JvdXBfYnkoY291bnRyeSwgdGhiMV9zdWJqLCB0aGIxX2RlbW9fcmVseV9udW0sIHN1cGVyX2NhdCkgJT4lCiAgc3VtbWFyaXNlKGJlbGlldmVfcHJvcCA9IG1lYW4oYmVsaWV2ZSwgbmEucm0gPSBUKSkgJT4lCiAgdW5ncm91cCgpICU+JQogIHNwcmVhZChzdXBlcl9jYXQsIGJlbGlldmVfcHJvcCkgJT4lCiAgbXV0YXRlKGRpZmYgPSByZWxpZ2lvdXMgLSBmYWN0KSAlPiUKICBnZ3Bsb3QoYWVzKHggPSB0aGIxX2RlbW9fcmVseV9udW0sIHkgPSBkaWZmKSkgKwogIGZhY2V0X2dyaWQoLiB+IGNvdW50cnkpICsKICBnZW9tX2ppdHRlcihhbHBoYSA9IDAuMiwgd2lkdGggPSAwLjEsIGhlaWdodCA9IDAuMDIpICsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKSArCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IDA6NiwgbGFiZWxzID0gbGV2ZWxzKGQxJHRoYjFfZGVtb19yZWx5KSkgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJ0b3AiKSArCiAgbGFicyh4ID0gIkhvdyByZWxpZ2lvdXMgYXJlIHlvdT8iLCAKICAgICAgIHkgPSAiRGlmZmVyZW5jZSBpbiBwcm9wb3J0aW9uICdiZWxpZXZlJyByZXNwb25zZXNcbihyZWxpZ2lvdXMgcXVlc3Rpb25zIC0gZmFjdCBxdWVzdGlvbnMpIiwKICAgICAgIGNvbG9yID0gIkNhdGVnb3J5IikKYGBgCgojIyMgYHRoYjFfZGVtb19pbXByYDogIkZyb20gMSB0byA3LCBob3cgaW1wb3J0YW50IHRvIHlvdSBpcyB5b3VyIHJlbGlnaW91cyBwcmFjdGljZT8gICgxID0gbm90IGltcG9ydGFudCBhdCBhbGwsIDcgPSBvZiB1dG1vc3QgaW1wb3J0YW5jZSkiCgpgYGB7ciwgZWNobyA9IFR9CnIxLjcgPC0gbG1lcihiZWxpZXZlIH4gc3VwZXJfY2F0ICogY291bnRyeSAqIHRoYjFfZGVtb19pbXByX251bQogICAgICAgICAgICAgKyAoMSArIHN1cGVyX2NhdCB8IHRoYjFfc3ViaikgKyAoMSB8IHF1ZXN0aW9uKSwKICAgICAgICAgICAgIGRhdGEgPSBkMV9sb25nICU+JSAKICAgICAgICAgICAgICAgZmlsdGVyKGNvdW50cnkgIT0gIlRoYWlsYW5kIikgJT4lCiAgICAgICAgICAgICAgIG11dGF0ZSh0aGIxX2RlbW9faW1wcl9udW0gPSBzY2FsZSh0aGIxX2RlbW9faW1wcl9udW0pKSwKICAgICAgICAgICAgIGNvbnRyYXN0cyA9IGxpc3QoY291bnRyeSA9ICJjb250ci5zdW0iKSkKYGBgCgpgYGB7cn0KcmVndGFiX2Z1bihyMS43LCBzdGRfYmV0YSA9IFQsIAogICAgICAgICAgIGNvdW50cnlfdmFyMSA9ICJjb3VudHJ5MSIsIGNvdW50cnlfbmFtZTEgPSAiQ291bnRyeSAoVVMpIiwKICAgICAgICAgICBjb3VudHJ5X3ZhcjIgPSAiY291bnRyeTIiLCBjb3VudHJ5X25hbWUyID0gIkNvdW50cnkgKEdoYW5hKSIsCiAgICAgICAgICAgY291bnRyeV92YXIzID0gImNvdW50cnkzIiwgY291bnRyeV9uYW1lMyA9ICJDb3VudHJ5IChDaGluYSkiLAogICAgICAgICAgIHByZWRpY3Rvcl92YXIxID0gInRoYjFfZGVtb19pbXByX251bSIsIAogICAgICAgICAgIHByZWRpY3Rvcl9uYW1lMSA9ICJIb3cgaW1wb3J0YW50IGlzIHlvdXIgcmVsaWdpb3VzIHByYWN0aWNlPyIpICU+JSAKICByZWd0YWJfc3R5bGVfZnVuKHJvd19lbXBoID0gYygxMCwgMTQ6MTYpKQpgYGAKClRoaXMgYW5hbHlzaXMgc3VnZ2VzdHMgdGhhdCBtb3JlIGltcG9ydGFuY2UgcGxhY2VkIG9uIHJlbGlnaW91cyBwcmFjdGljZSB3YXMgYXNzb2NpYXRlZCB3aXRoIGFuIGluY3JlYXNlZCBkaXN0aW5jdGlvbiBiZXR3ZWVuIHJlbGlnaW91cyBhbmQgZmFjdCBxdWVzdGlvbnMuIChOb3RlIHRoYXQgdGhpcyBhbmFseXNpcyBvbWl0cyBwYXJ0aWNpcGFudHMgZnJvbSBUaGFpbGFuZCwgd2hvIGRpZCBub3QgYW5zd2VyIHRoaXMgcXVlc3Rpb24gYWJvdXQgcmVsaWdpb3NpdHkuKQoKYGBge3J9CmQxX2xvbmcgJT4lIAogIGZpbHRlcihjb3VudHJ5ICE9ICJUaGFpbGFuZCIpICU+JQogIGdyb3VwX2J5KGNvdW50cnksIHRoYjFfc3ViaiwgdGhiMV9kZW1vX2ltcHJfbnVtLCBzdXBlcl9jYXQpICU+JQogIHN1bW1hcmlzZShiZWxpZXZlX3Byb3AgPSBtZWFuKGJlbGlldmUsIG5hLnJtID0gVCkpICU+JQogIHVuZ3JvdXAoKSAlPiUKICBnZ3Bsb3QoYWVzKHggPSB0aGIxX2RlbW9faW1wcl9udW0sIHkgPSBiZWxpZXZlX3Byb3AsIGNvbG9yID0gc3VwZXJfY2F0KSkgKwogIGZhY2V0X2dyaWQoLiB+IGNvdW50cnkpICsKICBnZW9tX2ppdHRlcihhbHBoYSA9IDAuMiwgd2lkdGggPSAwLjEsIGhlaWdodCA9IDAuMDIpICsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKSArCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IDA6NiwgbGFiZWxzID0gbGV2ZWxzKGQxJHRoYjFfZGVtb19pbXByKSkgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJ0b3AiKSArCiAgbGFicyh4ID0gIkhvdyBpbXBvcnRhbnQgaXMgeW91ciByZWxpZ2lvdXMgcHJhY3RpY2U/IiwgeSA9ICJQcm9wb3J0aW9uICdiZWxpZXZlJyByZXNwb25zZXMiLAogICAgICAgY29sb3IgPSAiQ2F0ZWdvcnkiKQpgYGAKCmBgYHtyfQpkMV9sb25nICU+JSAKICBmaWx0ZXIoY291bnRyeSAhPSAiVGhhaWxhbmQiKSAlPiUKICBncm91cF9ieShjb3VudHJ5LCB0aGIxX3N1YmosIHRoYjFfZGVtb19pbXByX251bSwgc3VwZXJfY2F0KSAlPiUKICBzdW1tYXJpc2UoYmVsaWV2ZV9wcm9wID0gbWVhbihiZWxpZXZlLCBuYS5ybSA9IFQpKSAlPiUKICB1bmdyb3VwKCkgJT4lCiAgc3ByZWFkKHN1cGVyX2NhdCwgYmVsaWV2ZV9wcm9wKSAlPiUKICBtdXRhdGUoZGlmZiA9IHJlbGlnaW91cyAtIGZhY3QpICU+JQogIGdncGxvdChhZXMoeCA9IHRoYjFfZGVtb19pbXByX251bSwgeSA9IGRpZmYpKSArCiAgZmFjZXRfZ3JpZCguIH4gY291bnRyeSkgKwogIGdlb21faml0dGVyKGFscGhhID0gMC4yLCB3aWR0aCA9IDAuMSwgaGVpZ2h0ID0gMC4wMikgKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpICsKICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gMDo2LCBsYWJlbHMgPSBsZXZlbHMoZDEkdGhiMV9kZW1vX2ltcHIpKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInRvcCIpICsKICBsYWJzKHggPSAiSG93IGltcG9ydGFudCBpcyB5b3VyIHJlbGlnaW91cyBwcmFjdGljZT8iLCAKICAgICAgIHkgPSAiRGlmZmVyZW5jZSBpbiBwcm9wb3J0aW9uICdiZWxpZXZlJyByZXNwb25zZXNcbihyZWxpZ2lvdXMgcXVlc3Rpb25zIC0gZmFjdCBxdWVzdGlvbnMpIiwKICAgICAgIGNvbG9yID0gIkNhdGVnb3J5IikKYGBgCgojIyMgYHRoYjFfZGVtb3dvcnNgOiAiSG93IG9mdGVuIGRvIHlvdSBhdHRlbmQgcGxhY2VzIG9mIHdvcnNoaXA/IgoKYGBge3IsIGVjaG8gPSBUfQpyMS44IDwtIGxtZXIoYmVsaWV2ZSB+IHN1cGVyX2NhdCAqIGNvdW50cnkgKiB0aGIxX2RlbW9fd29yc19udW0KICAgICAgICAgICAgICsgKDEgKyBzdXBlcl9jYXQgfCB0aGIxX3N1YmopICsgKDEgfCBxdWVzdGlvbiksCiAgICAgICAgICAgICBkYXRhID0gZDFfbG9uZyAlPiUgCiAgICAgICAgICAgICAgIG11dGF0ZSh0aGIxX2RlbW9fd29yc19udW0gPSBzY2FsZSh0aGIxX2RlbW9fd29yc19udW0pKSkKYGBgCgpgYGB7cn0KcmVndGFiX2Z1bihyMS44LCBzdGRfYmV0YSA9IFQsIAogICAgICAgICAgIHByZWRpY3Rvcl92YXIxID0gInRoYjFfZGVtb193b3JzX251bSIsIAogICAgICAgICAgIHByZWRpY3Rvcl9uYW1lMSA9ICJIb3cgb2Z0ZW4gZG8geW91IGF0dGVuZCBwbGFjZXMgb2Ygd29yc2hpcD8iKSAlPiUgCiAgcmVndGFiX3N0eWxlX2Z1bihyb3dfZW1waCA9IGMoMTIsIDE3OjIwKSkKYGBgCgpUaGlzIGFuYWx5c2lzIHN1Z2dlc3RzIHRoYXQgZnJlcXVlbmN5IG9mIGF0dGVuZGVuY2Ugd2FzIGFzc29jaWF0ZWQgd2l0aCBhbiBpbmNyZWFzZWQgZGlzdGluY3Rpb24gYmV0d2VlbiByZWxpZ2lvdXMgYW5kIGZhY3QgcXVlc3Rpb25zLiAKCmBgYHtyfQpkMV9sb25nICU+JSAKICBncm91cF9ieShjb3VudHJ5LCB0aGIxX3N1YmosIHRoYjFfZGVtb193b3JzX251bSwgc3VwZXJfY2F0KSAlPiUKICBzdW1tYXJpc2UoYmVsaWV2ZV9wcm9wID0gbWVhbihiZWxpZXZlLCBuYS5ybSA9IFQpKSAlPiUKICB1bmdyb3VwKCkgJT4lCiAgZ2dwbG90KGFlcyh4ID0gdGhiMV9kZW1vX3dvcnNfbnVtLCB5ID0gYmVsaWV2ZV9wcm9wLCBjb2xvciA9IHN1cGVyX2NhdCkpICsKICBmYWNldF9ncmlkKC4gfiBjb3VudHJ5KSArCiAgZ2VvbV9qaXR0ZXIoYWxwaGEgPSAwLjIsIHdpZHRoID0gMC4xLCBoZWlnaHQgPSAwLjAyKSArCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikgKwogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSAwOjQsIGxhYmVscyA9IGxldmVscyhkMSR0aGIxX2RlbW9fd29ycykpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAidG9wIiwKICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDEsIHZqdXN0ID0gMSkpICsKICBsYWJzKHggPSAiSG93IG9mdGVuIGRvIHlvdSBhdHRlbmQgcGxhY2VzIG9mIHdvcnNoaXA/IiwgCiAgICAgICB5ID0gIlByb3BvcnRpb24gJ2JlbGlldmUnIHJlc3BvbnNlcyIsCiAgICAgICBjb2xvciA9ICJDYXRlZ29yeSIpCmBgYAoKYGBge3J9CmQxX2xvbmcgJT4lIAogIGdyb3VwX2J5KGNvdW50cnksIHRoYjFfc3ViaiwgdGhiMV9kZW1vX3dvcnNfbnVtLCBzdXBlcl9jYXQpICU+JQogIHN1bW1hcmlzZShiZWxpZXZlX3Byb3AgPSBtZWFuKGJlbGlldmUsIG5hLnJtID0gVCkpICU+JQogIHVuZ3JvdXAoKSAlPiUKICBzcHJlYWQoc3VwZXJfY2F0LCBiZWxpZXZlX3Byb3ApICU+JQogIG11dGF0ZShkaWZmID0gcmVsaWdpb3VzIC0gZmFjdCkgJT4lCiAgZ2dwbG90KGFlcyh4ID0gdGhiMV9kZW1vX3dvcnNfbnVtLCB5ID0gZGlmZikpICsKICBmYWNldF9ncmlkKC4gfiBjb3VudHJ5KSArCiAgZ2VvbV9qaXR0ZXIoYWxwaGEgPSAwLjIsIHdpZHRoID0gMC4xLCBoZWlnaHQgPSAwLjAyKSArCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikgKwogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSAwOjQsIGxhYmVscyA9IGxldmVscyhkMSR0aGIxX2RlbW9fd29ycykpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAidG9wIiwKICAgICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDEsIHZqdXN0ID0gMSkpICsKICBsYWJzKHggPSAiSG93IG9mdGVuIGRvIHlvdSBhdHRlbmQgcGxhY2VzIG9mIHdvcnNoaXA/IiwgCiAgICAgICB5ID0gIkRpZmZlcmVuY2UgaW4gcHJvcG9ydGlvbiAnYmVsaWV2ZScgcmVzcG9uc2VzXG4ocmVsaWdpb3VzIHF1ZXN0aW9ucyAtIGZhY3QgcXVlc3Rpb25zKSIsCiAgICAgICBjb2xvciA9ICJDYXRlZ29yeSIpCmBgYAoKCgoK